//Universidad del Valle de Guatemala
//Algoritmos y estructuras de datos
//Mauricio Monsanto
//Rony Roche
//Emily Delgado
//Hoja de trabajo 1








package hoja.de.trabajo1;


public class Radio implements iRadio {
    
    
    

    int estado = 0;
    boolean grabar = false;
    boolean isam = true;
    float estacion = 530f;
    float estacionesam[] = {530f, 530f, 530f, 530f, 530f, 530f, 530f, 530f, 530f, 530f, 530f, 530f};
    float estacionesfm[] = {87.9f, 87.9f, 87.9f, 87.9f, 87.9f, 87.9f, 87.9f, 87.9f, 87.9f, 87.9f, 87.9f, 87.9f};

//Enciende y apaga el radio
    @Override
    public boolean Power() {     //Se utiliza para poder encender el radio


        if (estado == 0) {
            estado = 1;
            return true;


        } else {
            estado = 0;
            return false;
        }


    }
//Cambia de am "true" a fm "fm" 

    @Override
    public boolean ChangeSignal() {   //Cambio de señal

        if (estado == 1) {
            if (isam == true) {
                isam = false;
                estacion = 87.9f;

                return false;
            } else {
                isam = true;
                estacion = 530f;
                return true;
            }

        }
        return false;
    }

// cambio de estacion 
    @Override
    public float NextFreq() {     //Metodo utilizado para el cambio de estacion

        if (estado == 1) {
            if (isam == true) {
                if (estacion < 1610f) {
                    estacion = estacion + 10f;
                    return estacion;
                } else {
                    estacion = 530f;
                }
            } else {
                if (estacion < 107.9f) {
                    System.out.println(0.2f);
                    estacion = (estacion * 10 + 02f) / 10f;
                    return estacion;
                } else {
                    estacion = 87.9f;
                }

            }

        }
        return estacion;
    }

   
// para ver si grabo la estacion  

    @Override
    public boolean SaveFreq(int Boton) { //metodo para guardar la frecuencia

        if (estado == 1) {

            try {



                if (isam == true) {
                    estacionesam[Boton - 1] = estacion;
                    System.out.println("estacion es:" + estacion);

                } else {
                    estacionesfm[Boton - 1] = estacion;

                }

                return true;

            } catch (Exception e) {
                return false;
            }

        } else {
            return false;
        }
    }
// Devuelve la esatcion de la memoria y la cambia por la frecuencia en la memoria  

    @Override
    public float ChangeTune(int Boton) {

        if (estado == 1) {

            if (isam == true) {
                estacion = estacionesam[Boton - 1];
                System.out.println("estacion es:" + estacion);
                return estacion;
            } else {
                estacion = estacionesfm[Boton - 1];
                return estacion;
            }



        } else {
            return estacion;
        }


    }
// Devuelve si el radio esta encendido  

    @Override
    public boolean IsOn() {
        if (estado == 0) {
            return false;
        } else {
            return true;
        }
    }
// Devuelve si el radio esta en am  

    @Override
    public boolean IsAm() {

        if (isam == true) {
            return true;
        } else {
            return false;
        }


    }
// devuelve la frecuencia en la que esta el radio  

    @Override
    public float GetFreq() {


        return estacion;



    }
}